@@ -0,0 +1,2 @@ |
||
1 |
+https://github.com/cantino/heroku-selectable-procfile.git |
|
2 |
+https://github.com/heroku/heroku-buildpack-ruby.git |
@@ -22,6 +22,7 @@ else |
||
22 | 22 |
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw] |
23 | 23 |
end |
24 | 24 |
|
25 |
+gem 'mysql2', '~> 0.3.16' |
|
25 | 26 |
gem 'devise', '~> 3.2.4' |
26 | 27 |
gem 'kaminari', '~> 0.16.1' |
27 | 28 |
gem 'bootstrap-kaminari-views', '~> 0.0.3' |
@@ -75,11 +76,6 @@ gem 'slack-notifier', '~> 0.5.0' |
||
75 | 76 |
gem 'therubyracer', '~> 0.12.1' |
76 | 77 |
gem 'mqtt' |
77 | 78 |
|
78 |
-gem 'mysql2', '~> 0.3.16', groups: [:development, :test] |
|
79 |
-gem 'pg', group: :production |
|
80 |
-gem 'unicorn', groups: [:development, :production] |
|
81 |
-gem 'rails_12factor', group: :production |
|
82 |
- |
|
83 | 79 |
group :development do |
84 | 80 |
gem 'binding_of_caller' |
85 | 81 |
gem 'better_errors' |
@@ -103,3 +99,10 @@ group :production do |
||
103 | 99 |
gem 'dotenv-deployment' |
104 | 100 |
gem 'rack' |
105 | 101 |
end |
102 |
+ |
|
103 |
+if ENV['ON_HEROKU'] || ENV['HEROKU_POSTGRESQL_ROSE_URL'] |
|
104 |
+ gem 'pg', group: :production |
|
105 |
+ gem 'unicorn', groups: [:development, :production] |
|
106 |
+ gem 'rails_12factor', group: :production |
|
107 |
+end |
|
108 |
+ |
@@ -161,7 +161,6 @@ GEM |
||
161 | 161 |
kaminari (0.16.1) |
162 | 162 |
actionpack (>= 3.0.0) |
163 | 163 |
activesupport (>= 3.0.0) |
164 |
- kgio (2.8.0) |
|
165 | 164 |
kramdown (1.3.3) |
166 | 165 |
launchy (2.4.2) |
167 | 166 |
addressable (~> 2.3) |
@@ -193,7 +192,6 @@ GEM |
||
193 | 192 |
multi_xml (~> 0.5) |
194 | 193 |
rack (~> 1.2) |
195 | 194 |
orm_adapter (0.5.0) |
196 |
- pg (0.17.1) |
|
197 | 195 |
polyglot (0.3.5) |
198 | 196 |
protected_attributes (1.0.8) |
199 | 197 |
activemodel (>= 4.0.1, < 5.0) |
@@ -216,17 +214,11 @@ GEM |
||
216 | 214 |
bundler (>= 1.3.0, < 2.0) |
217 | 215 |
railties (= 4.1.4) |
218 | 216 |
sprockets-rails (~> 2.0) |
219 |
- rails_12factor (0.0.2) |
|
220 |
- rails_serve_static_assets |
|
221 |
- rails_stdout_logging |
|
222 |
- rails_serve_static_assets (0.0.2) |
|
223 |
- rails_stdout_logging (0.0.3) |
|
224 | 217 |
railties (4.1.4) |
225 | 218 |
actionpack (= 4.1.4) |
226 | 219 |
activesupport (= 4.1.4) |
227 | 220 |
rake (>= 0.8.7) |
228 | 221 |
thor (>= 0.18.1, < 2.0) |
229 |
- raindrops (0.11.0) |
|
230 | 222 |
rake (10.3.2) |
231 | 223 |
ref (1.0.5) |
232 | 224 |
rest-client (1.6.7) |
@@ -325,10 +317,6 @@ GEM |
||
325 | 317 |
uglifier (2.5.1) |
326 | 318 |
execjs (>= 0.3.0) |
327 | 319 |
json (>= 1.8.0) |
328 |
- unicorn (4.6.3) |
|
329 |
- kgio (~> 2.6) |
|
330 |
- rack |
|
331 |
- raindrops (~> 0.7) |
|
332 | 320 |
uuid (2.3.7) |
333 | 321 |
macaddr (~> 1.0) |
334 | 322 |
uuidtools (2.1.4) |
@@ -386,13 +374,11 @@ DEPENDENCIES |
||
386 | 374 |
mqtt |
387 | 375 |
mysql2 (~> 0.3.16) |
388 | 376 |
nokogiri (~> 1.6.1) |
389 |
- pg |
|
390 | 377 |
protected_attributes (~> 1.0.8) |
391 | 378 |
pry |
392 | 379 |
quiet_assets |
393 | 380 |
rack |
394 | 381 |
rails (= 4.1.4) |
395 |
- rails_12factor |
|
396 | 382 |
rr |
397 | 383 |
rspec (~> 2.14) |
398 | 384 |
rspec-rails (~> 2.14) |
@@ -409,7 +395,6 @@ DEPENDENCIES |
||
409 | 395 |
typhoeus (~> 0.6.3) |
410 | 396 |
tzinfo-data |
411 | 397 |
uglifier (>= 1.3.0) |
412 |
- unicorn |
|
413 | 398 |
vcr |
414 | 399 |
webmock (~> 1.17.4) |
415 | 400 |
weibo_2 (~> 0.1.4) |
@@ -1,8 +1,6 @@ |
||
1 | 1 |
# Procfile for development using the new threaded worker (scheduler, twitter stream and delayed job) |
2 |
-# web: bundle exec rails server |
|
3 |
-# jobs: bundle exec rails runner bin/threaded.rb |
|
4 |
- |
|
5 |
-web: bundle exec unicorn -p $PORT -c ./deployment/heroku/unicorn.rb |
|
2 |
+web: bundle exec rails server |
|
3 |
+jobs: bundle exec rails runner bin/threaded.rb |
|
6 | 4 |
|
7 | 5 |
# Possible Profile configuration for production: |
8 | 6 |
# web: bundle exec unicorn -c config/unicorn/production.rb |
@@ -45,6 +45,13 @@ def grab_heroku_config |
||
45 | 45 |
config |
46 | 46 |
end |
47 | 47 |
|
48 |
+def set_value(key, value, options = {}) |
|
49 |
+ unless config[key] == value |
|
50 |
+ puts "Setting #{key} to #{value}" unless options[:silent] |
|
51 |
+ puts capture("heroku config:set #{key}=#{value}") |
|
52 |
+ end |
|
53 |
+end |
|
54 |
+ |
|
48 | 55 |
unless File.exists?(File.expand_path("~/.netrc")) && File.read(File.expand_path("~/.netrc")) =~ /heroku/ |
49 | 56 |
puts "It looks like you need to log in to Heroku. Please run 'heroku auth:login' before continuing." |
50 | 57 |
exit 1 |
@@ -87,15 +94,11 @@ unless config['APP_SECRET_TOKEN'] |
||
87 | 94 |
puts capture("heroku config:set APP_SECRET_TOKEN=`rake secret`") |
88 | 95 |
end |
89 | 96 |
|
90 |
-unless config['FORCE_SSL'] |
|
91 |
- puts "Setting FORCE_SSL to true..." |
|
92 |
- puts capture("heroku config:set FORCE_SSL=true") |
|
93 |
-end |
|
94 |
- |
|
95 |
-unless config['DOMAIN'] |
|
96 |
- puts "Setting DOMAIN to #{app_name}.herokuapp.com..." |
|
97 |
- puts capture("heroku config:set DOMAIN=#{app_name}.herokuapp.com") |
|
98 |
-end |
|
97 |
+set_value 'BUILDPACK_URL', "https://github.com/ddollar/heroku-buildpack-multi.git" |
|
98 |
+set_value 'PROCFILE_PATH', "deployment/heroku/Procfile.heroku" |
|
99 |
+set_value 'ON_HEROKU', "true" |
|
100 |
+set_value 'FORCE_SSL', "true" |
|
101 |
+set_value 'DOMAIN', "#{app_name}.herokuapp.com" |
|
99 | 102 |
|
100 | 103 |
unless config['INVITATION_CODE'] |
101 | 104 |
puts "You need to set an invitation code for your Huginn instance. If you plan to share this instance, you will" |
@@ -103,8 +106,7 @@ unless config['INVITATION_CODE'] |
||
103 | 106 |
puts "that people will not guess." |
104 | 107 |
|
105 | 108 |
invitation_code = nag("What code would you like to use?") |
106 |
- puts "Setting INVITATION_CODE to #{invitation_code}..." |
|
107 |
- puts capture("heroku config:set INVITATION_CODE=#{invitation_code}") |
|
109 |
+ set_value 'INVITATION_CODE', invitation_code |
|
108 | 110 |
end |
109 | 111 |
|
110 | 112 |
unless config['SMTP_DOMAIN'] && config['SMTP_USER_NAME'] && config['SMTP_PASSWORD'] && config['SMTP_SERVER'] && config['EMAIL_FROM_ADDRESS'] |
@@ -113,20 +115,20 @@ unless config['SMTP_DOMAIN'] && config['SMTP_USER_NAME'] && config['SMTP_PASSWOR |
||
113 | 115 |
puts "SMTP_DOMAIN, SMTP_USER_NAME, SMTP_PASSWORD, and SMTP_SERVER with 'heroku config:set'." |
114 | 116 |
if yes?("Should I enable the free sendgrid addon?") |
115 | 117 |
puts capture("heroku addons:add sendgrid") |
116 |
- puts capture("heroku config:set SMTP_SERVER=smtp.sendgrid.net") |
|
117 |
- puts capture("heroku config:set SMTP_DOMAIN=heroku.com") |
|
118 |
+ |
|
119 |
+ set_value 'SMTP_SERVER', "smtp.sendgrid.net", silent: true |
|
120 |
+ set_value 'SMTP_DOMAIN', "heroku.com", silent: true |
|
118 | 121 |
|
119 | 122 |
config = grab_heroku_config |
120 |
- puts capture("heroku config:set SMTP_USER_NAME=#{config['SENDGRID_USERNAME']}") |
|
121 |
- puts capture("heroku config:set SMTP_PASSWORD=#{config['SENDGRID_PASSWORD']}") |
|
123 |
+ set_value 'SMTP_USER_NAME', config['SENDGRID_USERNAME'], silent: true |
|
124 |
+ set_value 'SMTP_PASSWORD', config['SENDGRID_PASSWORD'], silent: true |
|
122 | 125 |
else |
123 | 126 |
puts "Okay, you'll need to set SMTP_DOMAIN, SMTP_USER_NAME, SMTP_PASSWORD, and SMTP_SERVER with 'heroku config:set' manually." |
124 | 127 |
end |
125 | 128 |
|
126 | 129 |
unless config['EMAIL_FROM_ADDRESS'] |
127 | 130 |
email = nag("What email address would you like email to appear to be sent from?") |
128 |
- puts "Setting EMAIL_FROM_ADDRESS to #{email}..." |
|
129 |
- puts capture("heroku config:set EMAIL_FROM_ADDRESS=#{email}") |
|
131 |
+ set_value 'EMAIL_FROM_ADDRESS', email |
|
130 | 132 |
end |
131 | 133 |
end |
132 | 134 |
|
@@ -0,0 +1 @@ |
||
1 |
+web: bundle exec unicorn -p $PORT -c ./deployment/heroku/unicorn.rb |